package com.xyh.jdkDemo.proxy;

/**
 * @version v1.0
 * @类描述：静态代理 演示代码
 * @项目名称：
 * @包名： com.xyh.jdkDemo.proxy
 * @类名称：StatcProxy
 * @创建人：YIHANG.XU
 * @创建时间：2020/9/135:55 下午
 * @修改人：YIHANG.XU
 * @修改时间：2020/9/135:55 下午
 * @修改备注：
 * @Copyright
 */
public class StaticProxyDemo {

    public static void main(String[] args) {
        IService serviceClassDemo = new ServiceClassDemo();
        IService proxyHello = new ProxyHello(serviceClassDemo);
        proxyHello.sayHello();
    }

}

/**
 * 规范接口
 */
interface IService {
    public void sayHello();
}

/**
 * 代理类 不做具体逻辑实现
 */
class ProxyHello implements IService {

    private IService iService;

    public ProxyHello(IService iService) {
        this.iService = iService;
    }

    @Override
    public void sayHello() {
        System.out.println("proxyHello start");
        this.iService.sayHello();
        System.out.println("proxyHello end");
    }
}

/**
 * 实现接口的具体逻辑
 */
class ServiceClassDemo implements IService {
    @Override
    public void sayHello() {
        System.out.println("开始");
    }
}